Tech.Tips
Suggerimenti per l'IT by Giovanni Rinaldin
venerdì, settembre 13, 2019
Lettore per firma digitale non funzionante
1. lettori di carte con chip (smart card reader)
2. lettori di sim
3. dispositivi di firma remota.
Per i device fisici (1) e (2) possono presentarsi problemi di installazione dei driver (in Italia forniti principalmente da Bit4id). In particolare, può presentarsi l'eventualità che il driver del lettore venga addirittura sostituito da uno non corretto a seguito di aggiornamenti di sistema o installazione di altre periferiche o software.
Nell'esempio che riporto, il lettore di smart card che possiedo si trova a (non) funzionare su un set di driver diversi da quelli originali, come nello screenshot sotto.
Questi driver disturbano il funzionamento del lettore, impedendo tutte le operazion di firma digitale di documenti con qualsiasi software di firma. La periferica infatti non è riconosciuta dal software, che segnala l'assenza del dispositivo di firma.
In tale situazione, basta accedere a Gestione Dispositivi di Windows, espandere la voce "Lettori di smart card", cliccare col tasto destro sopra il lettore (spesso identificato con la voce "USB Smart Card Reader") e selezionare Disinstalla. Nella finestra di dialogo che appare, spuntare la voce "Elimina il software driver".
Terminata la disinstallazione, staccare e riattaccare il lettore dalla presa USB. Si reinstallerà correttamente se i driver orginali sono presenti nel sistema (a seguito ad esempio, della prima installazione del lettore).
sabato, maggio 20, 2017
Downgrade di Windows 10 da Enterprise a Pro e Home
- Da Impostazioni/Attivazione cliccare su Cambia Product Key e immettere il codice generico per Win 10 Pro insider preview VK7JG-NPHTM-C97JM-9MPGT-3V66T. Seguire la procedura. Se voleve fermarvi a Win 10 Pro fermatevi qui.
- Win+R, scrivere regedit.exe e dare invio
- alla chiave HKLM\Software\Microsoft\Windows NT\CurrentVersion cambiare il valore ProductName in "Windows 10 Home" e la chiave EditionID con il valore "Core" (sempre senza virgolette!)
- alla chiave HKLM\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion cambiare il valore ProductName in "Windows 10 Home" e la chiave EditionID con il valore "Core"
- chiudere regedit.exe e scaricare il Media Creation Tool da qui
- Creare una ISO di installazione (chiavetta o ISO), poi avviare setup.exe e scegliere la versione di Windows desiderata.
sabato, gennaio 09, 2016
Cancellare elementi disattivati da MsConfig
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig e cancellare le voci sotto “startupreg” e “startupfolder”.
domenica, agosto 24, 2014
Windows Form all'interno di DLL con VB.NET
Public Class addSection Public myCaller As sectionsSelection ' nome del form chiamantePrima di chiamare il form è necessario istanziarlo e assegnare il chiamante:
Dim addsection As New addSection addsection.myCaller = Me addsection.ShowDialog()In tal modo diventa semplice compiare i form creati in applicazioni all'interno delle librerie DLL. Quando il form addSection chiama metodi, controlli o variabili di sectionsSelection, basta usare myCaller oppure:
Dim sectionsSelection As sectionsSelection = myCallere il gioco è fatto.
venerdì, agosto 22, 2014
App in Android, usare le "generiche" per risparmiare spazio
giovedì, agosto 21, 2014
Indispensabili per Windows
Ecco la lista di freeware indispensabili:
- rScite è un editor testuale davvero completo. Il primo vantaggio è poter leggere i file con codifica Unix e quindi vedere i corretti ritorni a capo che invece notepad visualizzerebbe male. Altra caratteristica fondamentale è la selezione per colonna, tenendo premuto Alt.
- WinMerge è un tool davvero utile per confrontare file di testo: facile e intuitivo, si avvia anche dal menu contestuale di Explorer una volta selezionati 2 file. Come il programma precedente, supporta codifiche non Windows ed è molto più semplice da utilizzare di Vim o simili.
- 7zip è una scelta obbligata per poter aprire tutti i file compressi. Preferisco WinRar anche se quest'ultimo è a pagamento.
- Paint.Net è il replacement ideale per Paint, supporta tutti i formati più comuni e ha comandi di editing indispensabili anche per l'utente base. Supporta una marea di plug-in per aggiungere di tutto e di più (effetti, filtri, comandi, ecc.).
- per chi ha necessità di collegarsi e scambiare file con macchine Unix consiglio putty per la connessione via console e WinSCP per il trasferimento di file via SSH. Per chi volesse invece connettersi a Unix con una sessione grafica consiglio XMing, altrimenti non resta che installare il classico CygWinX per esigenze più complicate.
sabato, dicembre 14, 2013
Selezionare le cartelle da salvare nel cloud
La recente notizia che riguarda Sugarsync ha di sicuro provocato qualche problema ai più: il servizio diventa inspiegabilmente a pagamento dall'8 febbraio 2014. Inspiegabile perchè l'azienda è in attivo e non avrebbe apparente bisogno di risanare le casse, e perchè la scommessa che gli utenti la seguano (pagando) è davvero forte, a fronte dei tanti concorrenti gratuiti.
Uno dei tanti pregi di Sugarsync è sicuramente la possibilità di selezionare le cartelle da caricare sul cloud, lasciandole al loro posto. Cosa banale ma affatto ovvia per i concorrenti: Sugarsync è l'unico a disporre di questa caratteristica. Nel seguito vi presento una soluzione per poter fare la stessa cosa con gli altri fornitori di spazio gratuito in cloud, quali (nell'ordine nel quale li consiglio) Dropbox, Google Drive e Skydrive.
E' possibile infatti chiedere ai suddetti servizi di caricare la cartella desiderata, senza che sia fisicamente nella directory dedicata ("cartella Dropbox", che in genere si posiziona in C:\Users\nomeUtente\Dropbox). Questo è possibile grazie agli Hard link di Windows, fruibili, una volta posizionati nella cartella dedicata del cloud, con il comando:
mklink /J Nome Destinazione
Questo comando crea un Junction (giunzione) con la cartella specificata in Destinazione. La giunzione viene effettuata con il Nome desiderato (che vi consiglio sia il nome della cartella di Destinazione). Per emulare il comportamento di Sugarsync basta infine creare uno script in C:\windows che esegua il comando, e aggiungere al click destro su cartelle la chiamata a tale script.
Attenzione: nelle recenti versioni di Windows, il comando mklink non è un eseguibile, come trovate erroneamente riportato in alcune pagine Web, ma è un comando intrinseco della shell di Windows. Negli script va quindi richiamato come cmd /c mklink /J Nome Destinazione.
Ci sono molti software gratuiti che consentono di fare quanto descritto senza utilizzare il prompt dei comandi. Nonostante questo, nessuno di questi risolve il problema di Dropbox è la mancata sincronizzazione dei nuovi file o cartelle creati nelle cartelle originali linkate. Ho verificato infatti che, come dichiarato nel sito di Dropbox, il programma non si accorge dell'aggiunta di file o cartelle all interno delle junction fino al suo riavvio.
sabato, settembre 08, 2012
Cluster part 2 - tips and tricks
- le versioni di Windows Professional e Home (non i Server) hanno il limite degli accessi simultanei per cartella impostato a 10 (o 20 nelle ultime versioni) per limitare la diffusione di worm. In molti casi quindi si rende necessaria una cartella condivisa in un server che ospiti gli eseguibili e i dati che ogni macchina deve leggere. Tenete presente che il server può essere anche un WinServer Hyper-V o un Samba (att.ne però ai tempi di accesso).
Gli errori che si ottengono nel lanciare in parallelo da cartelle condivise in pc WinPro o Home sono criptici, e non danno idea del problema di accesso; in genere le librerie MPICH comunicano all'utente che "non è possibile settare la cartella di lavoro" o "la destinazione è inaccessbile". - è opportuno montare la stessa versione di MPICH2 in ogni macchina per evitare incompatibilità e errori indecifrabili.
- è possibile (io l'ho realizzato) montare un cluster Linux virtualizzato sopra quello Windows, utilizzando Virtual Server 2005 R2 in ogni macchina (previa installazione di IIS) e Debian (network distro). Per il controllo remoto delle macchine ho utilizzato VsPlus, gratuito.
mercoledì, febbraio 22, 2012
Costruzione di cluster MPICH2 per .NET
In questo articolo vorrei presentare, senza la pretesa di essere un informatico professionale, la realizzazione di un cluster a partire da 13 PC P4 1.5GB con Windows XP SP3. L'obiettivo è quello di mettere in grado il cluster di far girare codice parallelo scritto utilizzando i linguaggi VB.NET e C# oltre che i classici programmi in Fortran, C e C++. Verrà brevemente riportata nel seguito la metodologia utilizzata per selezionare gli strumenti di partenza, per configurarli e per testarli.
Strumenti necessari
E' necessario procurarsi dapprima le librerie MPICH2 scaricabili da qui (Argonne). Per esigenze di compatibilità con i programmi da utilizzare (nel mio caso, OpenseesMP) viene adottata la versione 1.3.1 scaricabile da qui in versione a 32bit. A mio personalissimo avviso è meglio limitare programmi paralleli fatti in casa e di conseguenza le librerie di supporto alle versioni x86, vista la grande documentazione ed esperienza a riguardo che si può trovare in rete.
La seconda esigenza di poter utilizzare programmi in VB.NET o C# ci mette di fronte a 2 scelte: o si adotta l'infrastruttura pronta di Microsoft (Windows HPC Server 2008, che è a 64bit) oppure si usa l'implementazione dell'Università dell'Indiana chiamata MPI.NET. Si decide di optare per la seconda possibilità causa la mancanza di hardware adatto per il server Microsoft. E' comunque necessario scaricare le librerie di runtine MPI di Ms, disponibili qui (l'ultima versione, qualsiasi altra precedente andava bene).
Finalmente, nell'ordine vengono installati in ogni macchina:
- librerie MPICH2 dell'Argonne (mpich2-1.3.1-win-ia32.msi);
- librerie Microsoft HPC Pack 2008 R2, versione 32bit nel cluster e 64bit nel mio portatile per lo sviluppo (l'installazione sui sistemi a 64bit è bloccata per il pacchetto di librerie a 32bit; in ogni caso nel sistema Microsoft di possono far girare insieme) (mpi_x86.msi);
- librerie MPI.NET per il runtime (MPI.NET Runtime.msi).
Configurazione
Facciamo altri pochi step per settare il cluster:
1 - per ogni macchina è consigliabile disattivare il firewall di Windows o, se questo non è possibile per qualsivoglia motivo, aprire tutte le porte necessarie per la comunicazione, che sono:
- porta TCP 8676 per il servizio in ascolto Argonne + una serie di porte per lo scambio dati settabili dall'utente tramite la variabile d'ambiente MPICH_PORT_RANGE da aggiungere nel sistema.
- porta TCP 8677 per il servizio in ascolto Microsoft MPI.
2 - settare lo stesso utente amministrativo in tutte le macchine. Se siete in un dominio l'operazione è facile, se non esiste il dominio la migliore alternativa è quella di utilizzare il meccanismo di trusting di Windows, cioè semplicemente usare stesso nome utente e password per l'account amministrativo in tutti i PC.
3 - per le MPICH2 dell'Argonne è necessario registrare l'utente amministrativo locale (come abbbiamo detto, lo stesso per tutto il cluster) tramite il programma wmpiregister disponibile nel menu Start dopo l'installazione, oppure fare il tutto tramite la riga di comando:
mpiexec -register user
dove user è il nome utente sopracitato.
3 - indipendentemente dal firewall, è necessario avviare manualmente il servizio smpd.exe contenuto nella cartella di installazione del pacchetto Microsoft usato prima (tipicamente C:\Program Files\Microsoft HPC Pack 2008 R2\Bin). Va avviato con l'opzione "-d" per indicare che lo avviamo in debug mode. Per automatizzare il tutto si rimanda ai miei programmi disponibili su giovanni.rinaldin.org . Attenzione che il servizio va avviato con le credenziali dell'utente amministratico comune di cui in precendenza. Il servizio occupa solo la porta 8677 come detto.
4 - nella cartella C:\Program Files\Microsoft HPC Pack 2008 R2\Bin, rinominare il programma mpiexec.exe in mpiexecms.exe. Inoltre aggiungere nel PATH di sistema la cartella C:\Program Files (x86)\MPICH2\bin.
Infine, si consiglia di mettere tutte le macchine in una sottorete privata diversa ma accessibile da altre reti per il lancio dei job e la copia dei risultati, ma l'argomento rete, qui, è secondario (perché per le vere prestazioni è necessario utilizzare una rete InfiniBand o Gigabit Ethernet).
Le macchine (d'ora in poi chiamate "nodi") sono ora pronte per entrare nel cluster.
Testing
Saranno testate le due librerie (Argonne e Microsoft) per verificare il corretto funzionamento. Il test è di fondamentale importanza per individuare possibili problemi nel trasporto di dati via rete, come la mancata risoluzione degli indirizzi, porte bloccate da firewall e così via.
Per testare le librerie Argonne è possibile compilare uno degli esempi forniti a corredo con il pacchetto installato. Gli esempi si trovano in C:\Program Files (x86)\MPICH2\examples o simili. Il comando di lancio è:
mpiexec -np N -machinefile mfile.txt \\nomecomputer\condivisa\cpi.exe
dove N è il numero di macchine interessate, mfile.txt è un file plain text contenente i nomi delle macchine (uno per riga - questo secondo me è il metodo più comodo, vedere anche l'opzione -hosts), "condivisa" è una cartella condivisa che tutte le macchine possono vedere, infine cpi.exe è l'esempio di calcolo del pi greco via integrazione fornito nelle librerie. Se tutto va a buon fine il lancio non visualizza errori e il programma richiede un numero di intervalli di integrazione. Tanto è più alto, tanto il pi greco sarà preciso.
Passiamo ora al test delle librerie Microsoft. Possiamo utilizzare il programma PingPong.exe fornito con gli esempi nell'SDK del pacchetto MPI.NET, in modo da testare la corretta installazione anche di questo.
E' necessario, se non si è loggati in Windows con lo stesso account amministratore con cui vengono eseguiti i job in rete, eseguite il comando "runas" nella shell prima di lanciare il lavoro. Il comando di lancio è il seguente:
mpiexecms -np N -machinefile mfile.txt -dir \\nomecomputer\condivisa \\nomecomputer\condivisa\PingPong.exe
dove i nomi sono quelli adottati nell'esempio precedente, con l'aggiunta del flag -dir che specifica la directory di lavoro. Tale flag è necessario perchè se non ci fosse le librerie Microsoft cercano la cartella locale dove sta l'eseguibile in tutti i PC, e questa potrebbe non esistere. Se questo test va a buon fine, compariranno una serie di messaggi contenenti i nomi di ogni macchina coinvolta.
Conclusioni
Si è mostrato come costruire un cluster con le librerie Argonne e Microsoft HPC senza utilizzare il Windows Server. Tale configurazione non garantisce prestazioni elevate e un controllo stretto dei job lanciati, ma è molto utile in ambiente di sviluppo e ricerca. Infine, molti altri programmi (ad es. OpenSeesMP, ABAQUS, ecc.) di appoggiano a tali librerie per eseguire lavori in parallelo.
sabato, novembre 19, 2011
Copia di Windows XP mode in Vmware Player
Se copiate la macchina virtuale Windows XP mode in Vmware player ad un altro pc, ricordatevi di spostare anche il file VHD (disco di Windows Virtual PC) insieme ai file Vmware.
Per unire i 2 file del disco, basterà utilizzare VmWare converter, e otterrete un unico file vmdk.